home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
Turnbull China Bikeride
/
Turnbull China Bikeride - Disc 2.iso
/
STUTTGART
/
EMULATOR
/
OLD
/
CPCEM102.ZIP
/
!CPCEmu
/
!Help
< prev
next >
Wrap
Text File
|
1996-09-12
|
10KB
|
259 lines
————————————————————————————————————————————————————————————————————————————————
CPC-Emulator V1.02 / 12-09-96
programmed in 1994-1996 by Andreas Stroiczek
(AMSDOS-ROM & system-ROM are copyright by AMSTRAD)
(BASIC-ROMs are copyright by LOCOMOTIVE SOFTWARE)
————————————————————————————————————————————————————————————————————————————————
!CPCEmu is freeware. That means, if you love it feel free to send me some gifts
or money for it, for moral support... :)
Introduction
~~~~~~~~~~~~
This program emulates an AMSTRAD CPC (Colour Personal Computer). It's a
Z80/4MHz-based 8-bit-computer with high resolution colour-graphix and
disk-drive.
If you don't know this machine try this:
⇨ start the emulator
⇨ 'insert' a disk-image in drive A
⇨ type CAT to get the directory
⇨ to start some programs just type RUN"program.xyz"
Features
~~~~~~~~
• fast Z80-emulation
• real CRTC-emulation (!) (for splittings and fullscreen)
• up to 128k RAM
• 8 UPPER-ROMs (ROM 7 must be AMSDOS-ROM, ROM 0 is the BASIC-ROM)
• disk-emulation provides two drives and different formats
• sound-support incuding hardware-envelopes and sample-replay
a small history:
~~~~~~~~~~~~~~~~
Changes from version 0.79 to 1.02
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
• fixed some bugs in Z80-emulation
• logarithmic sound-output
• horizontal colour-splitting
• direct .DSK-support
• option to change the ROM-internal key-mapping (for german and uk keyboards)
• loading disk-images via drag'n'drop
• multitasking (most work)
• 16 colour mode (uses Mode 35)
• Mode 35 modules and new Mode 36 modules for the Archimedes by Nicolai Willers
(big thanx!!)
• joystick support
• DiskImages filetyped (&064="CPC snap", &065="CPC disc")
• sampled sound support (fast machine recommended to prevent noisy samples)
• PIO-error fixed (thanx to Brice Rive and his netnews-discussion)
• after all changes to the sound-system: PSG-module rewritten!
• Printerport-/Digiblaster-emulation
• HALT-Bugfix!
Changes from version 0.50 to 0.79
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
• faster Z80-emulation
• interrupt and Gate Array bug fix
• drive B is now installed (drive and head select works now)
• !CPCEmu loads and makes snapshots
• faster CRTC-emulation
• easy file-exchange between AMSDOS and RISC OS via !Extractor
• modules for Mode 36 for the Archimedes taken from Coder's Revenge
(thanx to Mr.Hill and Frisco of Archiologics)
• border-redraw bugfix
• and finally SOUND!!!
what's still to do?
~~~~~~~~~~~~~~~~~~~
- make better CRTC/timing/colour-splitting
- emulate CRTC-register 5
- FDC-routines are still not completed
- rewriting !CPCXtract to make use of the FDC-module
- add EDSK-support
————————————————————————————————————————————————————————————————————————————————
Mouse & Keys
~~~~~~~~~~~~
In fullscreen-mode you have a menu at the top of the screen. You can use
the menu-button of your mouse to switch the menu on/off. You can get the
list of DiskImages by pressing the menu-button while your pointer is on
"DriveA{side0}{--}". You may also change the options (side-selection and
write-protection) with select- and adjust-button.
If you don't wanna use your mouse, you may use following keys:
<F1>: insert a disk-image in drive A
<SHIFT><F1>: turn disk in drive A (also in multitasking-mode)
<CTRL><F1>: protect/deprotect disk in drive A
<F2>: insert a disk-image in drive B
<SHIFT><F2>: turn disk in drive B (also in multitasking-mode)
<SHIFT><F3>: sound on/off
<CTRL><F2>: protect/deprotect disk in drive B
<SHIFT><F4>: make screen-shots (you'll find them in !CPCEmu.screenShot)
<SHIFT><F5>: make snap-shots (you'll find them in !CPCEmu.snapShot)
<SHIFT><F8>: reset (also in multitasking-mode)
<CTRL><F10>: quit
You can switch on a Joystick-emulation with NumLock.
With Joystick-emulation ON (=NumLock OFF), the emulator uses following keys
for the stick:
right Ctrl: fire 2 (this is the main joystick-button)
right Alt: fire 1
on keypad: 1: left
2: down
3: right
5: up
For more information about the CPC & CPC-Emulator-keyboard see the Draw-file
"KeyInfo" in !CPCEmu.Keys.
Since version 1.02 there is an option to change the ROM-internal
key-translation. This patch fits to german and uk keyboards.
To get the characters {[]}|@~ on german keyboards use the CTRL instead of ALT
('cause the CPC don't know any ALT-keys...).
Multitasking
~~~~~~~~~~~~
Note: since version 1.02 it is possible to change the setup while CPC is
running. When changing ROM-configuration or CPC-type, the CPC will crash.
You have to make a CPC-hard-reset afterwards.
In multitasking-mode you have the following shortcuts:
<SHIFT><F1>: turn disk in drive A
<SHIFT><F2>: turn disk in drive B
<SHIFT><F8>: reset
special mouse-clicks:
click with right mousebutton:
on emulatorwindow ⇨ deselect and freeze emulator
on iconbar ⇨ singletask
on panewindow/diskselection ⇨ open default DISKs-directory (!CPCEmu.DISKs.)
double-click:
on emulator-window ⇨ singletask
click with left mousebutton:
on %-display ⇨ switch between max.100% and max.speed
(does also work in singletasking-mode)
How to get DiskImages from your old CPC
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Use !CPCXtract to copy Files onto DiskImages. You can get those file via
PC-DOS-disk, you'll need a 3.5"-disk-drive connected to your old CPC for it and
a CPC-program which is capable to copy files onto a PC-disk (like DOSCOPY).
Then you can use !CPCXtract on your Acorn.
!CPCXtract also contains a DSK-filter.
Another way is to connect the CPC with your Acorn-Computer via parallel-port
as following: (ATTENTION: THIS DOESN'T WORK VERY WELL!!)
CPC Acorn
2 D0 2 D0
3 D1 3 D1
4 D2 4 D2
5 D3 5 D3
6 D4 6 D4
7 D5 7 D5
8 D6 8 D6
9 GND 18-25 GND
You'll find the CPC-tranfer-program in !CPCEmu.!CPCTrans.CPC. You have to
transfer this CPC-program to your CPC.
After everything is connected you should start !CPCTrans first(!) and after that
start the CPC-pendant ARCTRANS.BAS on your CPC.
The default-parameters of ARCTRANS.BAS are 42 Tracks, DATA-format (&C1-&C9),
512 byte sector-size (2) and soure-drive B (1). You have to change this if
necessary (i.e. take &41/&49 for first sector/last sector if you want to
transfer a disk formatted with SYSTEM-format).
If the transfer is completed successfully you'll find the generated DiskImage
in !CPCEmu.!CPCTrans named "newDisk". To use this image-file just copy it into
!CPCEmu.DISKs .
Note: The transfer works well on my Risc PC. Maybe it won't work correctly on
slower machines. You may set the variable "transferRate" in ARCTRANS.BAS
to a higher value than 92 if your machine responses with checksum-errors.
DiskImage specification
~~~~~~~~~~~~~~~~~~~~~~~
First, there is a 128 byte header. You may change the number of tracks, but the
size of the DiskImage has to be 128 + 2 * 6144 * <number of tracks>.
43 50 43 2D 45 6D 75 6C 61 74 6F 72 30 2E 35 30 CPC-Emulator0.50
44 69 73 6B 49 6D 61 67 65 56 34 00 00 00 00 00 DiskImageV4.....
34 30 54 72 61 63 6B 73 00 00 00 00 00 00 00 00 40Tracks........
44 6F 75 62 6C 65 53 69 64 65 64 00 00 00 00 00 DoubleSided.....
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
This is followed by the tracks. Each track is 2 * 6144 bytes long, 6144 bytes
for side 0 and 6144 bytes for side 1 of the CPC-disk.
One side of a track looks like following datas:
Track start (one side, 6144 bytes):
49 4E 44 58 49 44 46 44 00 00 C1 02 00 00 00 00 INDXIDFD........
00 00 00 00 00 00 00 00 ⇧ ⇧ ⇧ ⇧ 44 41 54 41 ⇧...⇧...⇧...DATA
00 45 58 .. .. .. ¦ ¦ ¦ ¦ ¦ ¦ ¦ ⇧
¦ ¦ ¦ size 2 (512 bytes) ¦ ¦ ¦ ¦
¦ ¦ sector &C1 ¦ ¦ ¦ data-word
¦ head 0 ¦ ¦ ID-field data
track 0 ¦ ID-field-word
index-word
The track starts with the "INDX"-mark followed by "IDFD" followed by the ID-data
for the first sector on track (4 byte ID-field + 16 reserved bytes) followed by
the "DATA"-mark followed by the sector-datas (i.e. 512 bytes). After that the
next sector on track starts exactly like the first one. The only difference is
that it starts up with four 00-bytes instead of the "INDX"-mark. The rest of
this track is set to 00.
————————————————————————————————————————————————————————————————————————————————
Send your improvements & suggestions to:
Andreas Stroiczek
Zum Kindergarten 5
32427 Minden
Germany
(email:hugger@azrael.uni-paderborn.de)
(does anybody need more than 8 upper ROMs and/or 128k RAM for the emulator???)
————————————————————————————————————————————————————————————————————————————————
special greetinx to
Patrick Hinrichs
Eduard Pfarr
Boris Leppin
Mark Rison
K.E.W.Tacker
Ronald Heitmann
Ingo & Nicolai Willers
Thomas Boroske
Reiner Lorenz
Oliver Mayer
Jörn Mika
————————————————————————————————————————————————————————————————————————————————